home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / c / hzip.com / HUFFENC.H < prev    next >
Encoding:
C/C++ Source or Header  |  1991-01-08  |  906 b   |  39 lines

  1. /////////////////////////////////////////////////
  2. // Huffman encoder header file huffenc.h
  3. // Copyright (c) 1991 Azarona Software
  4. // All rights reserved.
  5. /////////////////////////////////////////////////
  6.  
  7. #ifndef H_HUFFENC
  8. #define H_HUFFENC
  9.  
  10. #include <stdio.h>
  11. #include "pkmg.h"
  12.  
  13. class huff_encoder {
  14. public:
  15.   FILE *fin, *fout;
  16.   unsigned *codes;
  17.   char *code_lengths;
  18.   char *leaf_depths;
  19.   long *counts, *sorted_counts;
  20.   unsigned char *smap;
  21.   int num_symbols;
  22.   int max_code_len;
  23.   int currbyte, currbit;
  24. public:
  25.   huff_encoder(int ns, int nl);
  26.   virtual ~huff_encoder(void);
  27.   int generate_codes(void);
  28.   void reset_encoding(void);
  29.   void encode_symbol(int sym);
  30.   void flushbits(void);
  31.   void encode(FILE *fo, FILE *fi);
  32.   void dump_codes(FILE *f, long locn);
  33.   static void print_bits(char nbits, unsigned code);
  34.   void print_data(int show_sorted);
  35. };
  36.  
  37. #endif
  38.  
  39.